package com.ihr360.payroll.model.dto.salary.basecode;

import com.ihr360.commons.model.dto.BaseCode;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

import javax.persistence.Cacheable;
import javax.persistence.Column;
import javax.persistence.Entity;

/**
 * 个税类型
 * 工资薪金税
 * 劳务税
 * 年终奖税
 * 离职补偿金税
 * 竞业限制补偿金税
 * 股息红利税
 * 虚拟股票期权税
 * 股票期权税
 * 限制性股票税
 * 偶然所得税
 **/
@Entity
@Cacheable
@Cache(region = "cnb.base", usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class SalaryTaxType extends BaseCode<Long> {
    private static final long serialVersionUID = 6226633713063248198L;

    public static final class Code {
        //工资薪金税
        public static final String salary_tax = "salary_tax";

        //劳务税
        public static final String labor_tax = "labor_tax";

        //年终奖税
        public static final String annual_bonus_tax = "annual_bonus_tax";

        //离职补偿金税
        public static final String severance_packages_tax = "severance_packages_tax";

        //竞业限制补偿金税
        public static final String nocompete_tax = "nocompete_tax";

        //股息红利税
        public static final String dividend_tax = "dividend_tax";

        //虚拟股票期权税
        public static final String psop_tax = "psop_tax";

        //股票期权税
        public static final String stock_option_tax = "stock_option_tax";

        //限制性股票税
        public static final String restricted_stock_tax = "restricted_stock_tax";

        //偶然所得税
        public static final String contingent_income_tax = "contingent_income_tax";
    }
    @Column(columnDefinition = "bit(1) default 0")
    private boolean embedded;
}
